字符串文字通过多个图层

时间:2018-05-15 19:58:20

标签: typescript

我有一种字符串文字定义为type answer = 'yes'|'no';
我试图“传递”这种类型。所有类和文件都可以相互正确导入/导出。

File1.ts

type answer = 'yes'|'no';
export class test{
    static getAnswer(input:answer){
        if(answer === 'yes') console.log('Correct');
        else console.log('False');
    }
}

File2.ts

import {test} from 'File1';
class sendAnswer{
    static answer(input:string){
        test.getAnswer(input); //this is where I get the error
    } 
}

错误:

  

TS2345'string'类型的参数不能分配给'itemString'类型的参数

我有许多文件会使用字符answer()File2.ts'yes'拨打'no'
我知道我可以在每个文件中定义类型,以便将正确的选项传递到顶层,但我试图找到一种方法在顶层声明类型,并将其传递给使用该函数的文件

1 个答案:

答案 0 :(得分:1)

您可以像使用类一样导出/导入类型。所以只需导出文字类型并在需要时使用它。

文件1

export type Answer = 'yes'|'no';
...

文件2

import {test, Answer} from 'File1';
...
    static answer(input: Answer) {}
...