Typescript中复杂类型的类型注释

时间:2019-10-28 01:31:25

标签: typescript

我有一段Javascript代码,我需要转换为Typescript,并且由于我是Typescript的新手,并且我在该领域没有太多经验,所以到目前为止,我一直在努力寻找答案。有一个变量(选项):

class Global {
    ...
    options: any;

,并在代码的其他地方对其进行了初始化:

global.options = extend(
        {
            pauseFocusSelector: '.pause-on-focus'
        },
        global.options);

所以我决定在Typescript中定义一个接口来分配其类型:

interface OptionType
{
    pauseFocusSelector: string[];
};

但是当我编译它时,出现此错误:

  

错误TS2345:“选项类型”类型的参数无法分配给“字符串”类型的参数。

有人可以给我一个解决的提示吗?

1 个答案:

答案 0 :(得分:1)

这是因为您试图将string分配给具有字符串数组类型的接口的属性。

您要么需要将OptionType界面更改为:

interface OptionType
{
  pauseFocusSelector: string;
};

或者,如果pauseFocusSelector必须为string[],则需要将分配行更改为:

global.options = extend({
  pauseFocusSelector: ['.pause-on-focus']
}, global.options);