emiter.off(event, handler)
const off1 = emiter.on('aaa', handler1)
const off2 = emiter.on('aaa', handler2)
off1()
Например, как это сделано в Vue.
В нем есть on и off
function wrapper<A extends any[], T extends { start(...args: A): void }>(target: { new(): T }, ...args: A): T {
let instance = new target();
instance.start(...args);
return instance;
}
class RandomClass {
start(arg1: string, arg2: number) { /* ... */ }
}
let instance = wrapper(RandomClass, 'Hello, world!', 777); /// все ок
let instance2 = wrapper(RandomClass, 777); /// ошибка
Что стоит использовать type или интерфейс?
лучше всегда использовать типы, а не интерфейсы, чтобы код выглядел более единообразно
Функция identity принимает число и возвращает число.
аким образом, если в программе есть следующий вызов функции identity('qwerty') ,то ошибку программист заметит на этапе компиляции, а не во время выполнения.
,то программист заметил бы ошибку только на этапе выполнения.
const x: number = identity('aaa')
//или
const x: string = identity(1)
// или любой другой вариант где типы не совпадут.
identity<number>(1)
можно но смысла нет, это совершенно то же самое что и identity(1)
ts ругаеться и таких моментов море, где я пишу код не совсем как я хочу, а как меня заставляет ts
Но вот внутри функции есть еще скажем такая промежуточная типизация(NodeListOf) с которой я не совсем согласен
Как вы считаете стоит ли типизировать вообще все?
export default createScene
import createScene from './modules/scene'
export createScene
import {createScene} from './modules/scene'
export default { createScene }