1
/* @flow */

let m: Map<number, string>;

m = new Map();

m[1] = 'qwe';

给出这个错误:

7: m[1] = 'qwe';
   ^ Cannot assign `'qwe'` to `m[1]` because an index signature declaring the expected key / value type is not writable.
7: m[1] = 'qwe';
     ^ Cannot assign `'qwe'` to `m[1]` because number [1] is incompatible with `$SymbolToStringTag` [2].
References:
7: m[1] = 'qwe';
     ^ [1]
[LIB] ..//static/v0.111.0/flowlib/core.js:606:     +[key: $SymbolToStringTag]: any;
                                                          ^ [2]

你可以在这里试试 https://flow.org/try/#0PQKgBAAgZgNg9gdzCYAoVMCmAXMBbALjAFkBDABwB4A7AVzwCNMAnAGjAGdtmBLagcwB8AbnR4wAXjDVMSMuQAUASlGo8AbQCMAXUlgA5AEcEmfcKA

4

1 回答 1

1

啊该死,那是因为在带有地图的 JS 中,你不能m[key] = value;只使用m.set(key, value).

于 2019-10-31T13:15:37.077 回答