interface Volume {
id: number;
volume?: string;
}
interface Snapshot {
id: number;
snapshot?: string;
}
А так нет:interface Volume {
id: number;
volume: string;
}
interface Snapshot {
id: number;
snapshot: string;
}
interface Volume {
id?: number;
}
interface Snapshot {
id?: string;
}
enum Constants {
VERTICAL = 'vertical',
STEP = 'step'
}
interface ConstantsTypes {
[Constants.VERTICAL]: boolean,
[Constants.STEP]: number,
}
public get<T extends keyof ConstantsTypes>(prop: T): ConstantsTypes[T] {}
export class IResultItem {
constructor(
public id: i32,
public type: string,
public date: string,
public from: string,
public from_id: i32,
public text: string
) {}
}
export function add(
result: IResultItem[] = [new IResultItem( 1, "type", "25.25.2025", "rew", 123, "hello" )]
): IResultItem[] {
return result;
}
export default {
server: {
host: '0.0.0.0'
}
}
function makeUser() {
return {
name: "Джон",
get ref(){
return this
}
};
};
let user = makeUser();
console.log(user.ref);
route params
- плохо (но возможно push({name: <name>, params: {...}})
). Если кто-то откроет страничку напрямую - он ничего не увидит.import from
надо чтобы в конечном файле был соответствующий export
(т.е. тот файл тоже должен быть модулем). Простой import
- это просто подключение скрипта как есть, всё равно что загрузка через <script>
.npm
пакеты содержат разные версии дистрибутивов под разные способы подключения. Надо посмотреть куда указывает module
(а не main
) в package.json
и именно этот файл можно будет подключать через import from
.module
в package.json
нет - значит библиотека не поддерживает современные es модули, увы, и придётся её использовать по-старинке(хотя лучше проверить глазами js файлы, изредка забывают указать). Именно такая ситуация наблюдается с lodash
, однако есть либа lodash-es
, которая решает эту проблему.main
в package.json
). Но из коробки без соответствующих либ они уже работать не будут. Win + R
, cmd
, ping habr.com -l 1000 -t
.