Slide 4
Slide 4 text
設計ルールも、tsp compile
で縛れる
TypeSpec
の Custom Linter
で、組織固有の設計ルールを tsp compile
時に強制できる。
例:
「string scalar
には @pattern
必須」をルール化、違反は warning
。
createRule({
name: "require-pattern",
severity: "warning",
create: (ctx) => ({
scalar: (s) =>
isStringScalar(s) && !hasPattern(s) &&
ctx.reportDiagnostic({ target: s }),
}),
});
bad.tsp:4:8 - warning
scalar 'UserId' は string を継承していますが、
@pattern が指定されていません。
> scalar UserId extends string;
^^^^^^
Found 1 warning.
契約の 書き方 だけでなく 設計ルール までガードレールに
TypeSpec
の拡張性