Custom scalar cho phép kiểm tra và chuẩn hoá định dạng ngay ở tầng schema: giá trị sai bị từ chối trước khi vào resolver, và mọi client nhận cùng một định dạng.
Các kiểu hay dùng: ngày giờ, thư điện tử, địa chỉ web, số thập phân chính xác cho tiền tệ.
graphql
scalar DateTime # you must implement serialize / parseValue / parseLiteral
type Post { publishedAt: DateTime! }Bẫy cần tránh là kiểu tuỳ ý dạng JSON. Nó tiện khi dữ liệu không có cấu trúc cố định nhưng đánh mất toàn bộ lợi ích của hệ kiểu: client không biết bên trong có gì, công cụ codegen không giúp được, và mọi thay đổi bên trong đều âm thầm.
Một lưu ý riêng về tiền tệ: dùng số thực là sai lầm quen thuộc vì phép làm tròn nhị phân gây lệch. Cách an toàn là truyền dưới dạng chuỗi hoặc số nguyên đơn vị nhỏ nhất, và mô tả rõ quy ước đó trong schema.