TS2538:类型“唯一符号”不能用作索引类型

时间:2018-11-21 02:59:05

标签: tsc typescript3.0

我有这个:

var UseOfState = class extends React.Component {
    constructor(props) {
        super(props);
        this.state = {isCheck: true};
        this.toggleCheckbox = this.toggleCheckbox.bind(this);
    }

    toggleCheckbox () {
        console.log('checkbox triggered');
        this.setState = ({isCheck: !this.state.isCheck});
    }

    render () {
    console.log('render');
        var msg;
        if(this.state.isCheck) {
            msg = 'checked';
            console.log(this.state.isCheck);
        } else {
            msg = 'unchecked';
            console.log(this.state.isCheck);
        }

        return (
            <div>
                <input type="checkbox" onChange={this.toggleCheckbox} defaultChecked={this.state.isCheck}/>
                <h3>Check box is {msg}</h3>
            </div>
        );
    }
}
ReactDOM.render(<UseOfState/>,document.getElementById('root'));

我收到此错误:

  

TS2538:类型“唯一符号”不能用作索引类型。

enter image description here

有人知道该错误是什么吗?我使用的是tsc版本 3.1.6

1 个答案:

答案 0 :(得分:0)

我糟糕的解决方法:

const bar: Record<any, string> = {};
const FOO = Symbol('foo');

// eslint-disable-next-line @typescript-eslint/no-explicit-any
bar[FOO as any] = 'sad';