import { createRule, isNullType } from '@typespec/compiler' export const noNullableRule = createRule({ name: 'no-nullable', description: 'Use `?` for optional properties.', severity: 'warning', messages: { default: "Don't use `| null`. If you meant to have an optional property, use `?`. (e.g. `myProp?: string`)", }, create(context) { return { modelProperty: (property) => { if (property.type.kind !== 'Union') { return } if ( !property.node?.optional && [...property.type.variants.values()].some((x) => isNullType(x.type)) ) { context.reportDiagnostic({ target: property, }) } }, } }, })