Tôi luôn biên dịch typecript với cờ --noImplicitAny. Điều này có ý nghĩa khi tôi muốn kiểm tra kiểu của mình càng chặt chẽ càng tốt.
Vấn đề của tôi là với đoạn mã sau tôi gặp lỗi Index signature of object type implicitly has an 'any' type
:
interface ISomeObject {
firstKey: string;
secondKey: string;
thirdKey: string;
}
let someObject: ISomeObject = {
firstKey: 'firstValue',
secondKey: 'secondValue',
thirdKey: 'thirdValue'
};
let key: string = 'secondKey';
let secondValue: string = someObject[key];
Điều quan trọng cần lưu ý là ý tưởng là biến khóa xuất phát từ một nơi khác trong ứng dụng và có thể là bất kỳ khóa nào trong đối tượng.
Tôi đã cố gắng phân loại rõ ràng bằng cách:
let secondValue: string = <string>someObject[key];
Hoặc là kịch bản của tôi chỉ là không thể với --noImplicitAny
?