使用 TS Compiler API 确定接口属性签名是否允许未定义(例如 prop1?: string;)
我正在使用 TypeScript 编译器 API 来收集接口详细信息,以便我可以创建数据库表。效果很好,但我想确定字段是否可以为空,或者用 TS 术语来说,是否有像 string|undefined 这样的类型保护。
”
export default interface IAccount{
name: string;
description?: string;
。
我希望能够将属性“描述”识别为字符串|未定义,因此“可为空 我可以通过编译器 API 访问节点文本并找到“?”但还有更好的办法吗?
I am using the TypeScript Compiler API to harvest Interface details so I can create database tables. Works well but I would like to identify whether fields are nullable, or in TS jargon, have a type guard like string|undefined.
Eg
export default interface IAccount{
name: string;
description?: string;
}
I would like to be able to identify property "description" as string|undefined and hence, "nullable". I can access the node text via the compiler API and find "?" but is there a better way?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
InterfaceDeclaration
节点包含node.members
(PropertySignature
节点),如果此类属性签名包含questionToken
键,则它可以为空:输出:
The
InterfaceDeclaration
node containsnode.members
(PropertySignature
nodes) and if such property signature contains aquestionToken
key, it is nullable:Output: