消除TypeScript

时间:2015-09-07 19:03:43

标签: typescript

假设我的代码如下:

function defaultIt(s: MaybeString): string {
  if (typeof s.content === "string") {
    return s.content;
  }

  return "";
}

class MaybeString {
  content: string|void;
}

如果我错了,请纠正我,但我相信这对你来说是类型安全的;任何符合MaybeString的输入都会产生字符串。但是,TypeScript给出了一个错误:Type 'string | void' is not assignable to type 'string'

如何让TypeScript通过检查类型来识别我已消除歧义?

谢谢!

1 个答案:

答案 0 :(得分:1)

目前您可以使用其他变量:

@PostConstruct

sample

或者施放到字符串:

var temp:string|void = s.content;

if (typeof temp === "string") {
   return temp;
}

sample

对于可以使用if (typeof s.content === "string") { return <string>s.content; } 功能的课程,请参阅this article了解详情