将属性定义为在Typescript中重新生成字符串的字符串或函数

时间:2015-10-29 08:00:47

标签: typescript declaration tsd

我想创建一个接口,其中属性可以是stringFunction,必须返回string。我目前有以下内容:

interface IExample {
  prop: string|Function;
}

但这并不是我明确要求的,因为Function被允许返回任何东西。我想告诉编译器返回值必须是string

如何在打字稿中实现这一目标?或者它有可能吗?

1 个答案:

答案 0 :(得分:11)

type propType = () => string;

interface IExample {
   field : string | propType;
}

class MyClass1 implements IExample {
    field : string;
}

class MyClass2 implements IExample {
    field() {
        return "";
    }
}

更新1

type PropertyFunction<T> = () => T;

interface IExample {
   field : string | PropertyFunction<string>;
}