打字稿中的Set类型是什么?

时间:2019-10-02 03:54:53

标签: javascript typescript react-native set

我正在尝试将代码javascript更改为打字稿 在Home.tsx中,

interface IState {
    mySet: ??; // what is type of Set??
    myNum: number;
    myStr: string;
    myArr: number[];
}
class Home extends Component<IProps, IState> {
    constructor(props: IProps) {
        super(props)
        this.state = {
            mySet: new Set([]);
        }

    }
}

什么是集合类型?

1 个答案:

答案 0 :(得分:1)

通过查看打字稿中的定义集,您将找到以下界面:

interface Set<T> {
    add(value: T): this;
    clear(): void;
    delete(value: T): boolean;
    forEach(callbackfn: (value: T, value2: T, set: Set<T>) => void, thisArg?: any): void;
    has(value: T): boolean;
    readonly size: number;
}

<T>意味着Set类型将需要一个类型参数。您可以像这样在IState对象中指定它:

interface IState {
    mySet: Set<number>; // type depends on what type you want to store obviously.
    myNum: number;
    myStr: string;
    myArr: number[];
}

如果您不关心类型(如果您使用的是打字稿,则可能应该这样做),那么您可以简单地将any作为类型参数传递,并且该集合将像在标准javascript中一样运行