TypeScript类型代表未定义的所有内容

时间:2018-07-08 22:37:04

标签: typescript typescript2.0 tsc

我有一个类似的功能:

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

我尝试了这种方法,但是没有错误:

enter image description here

在您抱怨之前,这是代码/要旨: https://gist.github.com/ORESoftware/e138f1840302c79b4ffc5f961337c44b

1 个答案:

答案 0 :(得分:3)

您需要启用严格的null检查,否则,将nullundefined隐式添加为每种类型的有效值。

参考文献: