package.json
и всё что с ним связано - это экосистема node. Из-за удобства и универсальности она принята за стандарт для всей разработки фронта, но браузер об этом ничего не знает. npm i -D @types/google.maps
methods: {
openUnit(it: string):void {
void this.$router.push(`/unit/${it}`);
}
}
methods: {
openUnit(it: string) {
return this.$router.push(`/unit/${it}`);
}
}
methods: {
async openUnit(it: string) {
await this.$router.push(`/unit/${it}`);
}
}
let key: keyof EventStatusType;
for (key in eventTypes) {
Typescript не может автоматически вывести тип key
потому что он структурный, и никак не может знать, что в объекте точно нет ещё каких-нибудь ключей, кроме тех что указаны в типе EventStatusType
: const foo = {
Closed: false,
Maintaince: false,
Open: false,
внезапно: 'Вася'
};
const bar: EventStatusType = foo; // ok
Поскольку с помощью кода в начале ты фактически говоришь Typescript: "я знаю лучше, там точно не будет ничего другого", то на всякий непредвиденный случай следует добавить в switch
default
который что-то сделает(например кинет ошибку) если таки лишний неведомый ключ прилетит.Maintaince
и Maintenance
. function getPropertyOfObject<T extends Record<PropertyKey, any>>(obj: T) {
const defaultKey = 'defaultKey';
function getProp<K extends keyof T>(keyOne: K): typeof defaultKey extends keyof T[K] ? T[K][typeof defaultKey] : void;
function getProp<K extends keyof T, K2 extends keyof T[K]>(keyOne: K, keyTwo: K2): T[K][K2];
function getProp(keyOne: PropertyKey, keyTwo?: PropertyKey) {
return obj?.[keyOne]?.[keyTwo ?? defaultKey];
}
return getProp;
}
{
"name": "ts",
"version": "1.0.0",
"type": "module",
"main": "index.js",
"module": "index.js",
"license": "MIT",
"dependencies": {
"typescript": "^4.4.4"
},
"devDependencies": {
"@types/node": "^16.11.7"
}
}
{
"compilerOptions": {
"target": "esnext",
"module": "esnext",
"esModuleInterop": true,
"strict": true
}
}
import cp from "child_process";
console.log(cp);
useEffect(() => {
const fetchData = async (url: string, data: any[] = []) => {
const res = await fetch(url);
const json = await res.json();
if(json.pagination.links.next){
await fetchData(json.pagination.links.next, data)
}
data.push(json.data);
return data;
};
fetchData("https://gorest.co.in/public/v1/users").then(setData);
}, [url]);
useEffect(() => {
const fetchData = async (url: string) => {
let data: any[] = [];
do {
const res = await fetch(url);
const json = await res.json();
data.push(json.data);
url = json.pagination.links.next;
} while (url);
return data;
};
fetchData("https://gorest.co.in/public/v1/users").then(setData);
}, [url]);
any
- расставить твои типы надо. const dataPriceAndDividendsByTicker = await responsePriceAndDividendsByTicker.json();