我有一个类似的功能:
export const logToStdout = function(v: NotUndefined){
console.log(JSON.stringify({
marker: '@json-stdio',
value: v
});
}
我想要的是NotUndefined的定义,除了undefined
之外,其他所有内容都没有。
您可以在运行时看到问题:
console.log(JSON.stringify({value: ''}));
console.log(JSON.stringify({value: undefined}));
那会是什么漂亮的东西
export type NotUndefined = !undefined;
什么是正确的方法?
我在Github上的TS上看到了这个相关问题:https://github.com/Microsoft/TypeScript/issues/7648
我尝试了这种方法,但是没有错误:
在您抱怨之前,这是代码/要旨: https://gist.github.com/ORESoftware/e138f1840302c79b4ffc5f961337c44b
答案 0 :(得分:3)
您需要启用严格的null检查,否则,将null
和undefined
隐式添加为每种类型的有效值。
参考文献: