В коде я часто использую функцию как объект, то есть:
let a = function () {
console.log('a');
}
a.b = function () {
console.log('b');
}
a.c = function () {
console.log('c');
}
a(); -> a
a.b(); -> b
a.c(); -> c
В typescript такой синтаксис не проходит:
Почему и что делать ?
поставить тип void
можно, чтоб обозначить, что будут свойства, которые ничего не будут возвращать
let a:void = function () {
console.log('a');
}
a.b = function () {
console.log('b');
}
a.c = function () {
console.log('c');
}
a();
a.b();
a.c();
http://codepen.io/anon/pen/qrzgRe
Либо можно поставить any
— может понадобиться если нужно описать тип переменных, которые мы не знаем, когда пишем приложение.
let a:any = function () {
console.log('a');
}
a.b = function () {
console.log('b');
}
a.c = function () {
console.log('c');
}
a();
a.b();
a.c();
Вообще выглядит это странно: функция, а у нее поля еще функции О_о
Может быть вы хотели сделать так:
class A {
constructor() {
// do smth
}
b() {
console.log("b");
}
c() {
console.log("c");
}
}
let myClass = new A();
myClass.b();
myClass.c();
Незнаю будет вам удобно или нет, но можете поробовать статические методы.
class A{
static b(){
console.log("b")
}
static c(){
console.log("c")
}
}
A.b()
A.c()
С типом any
let a:any = function(){
console.log("a")
}
a.b = function(){
console.log("b")
}
a.c = function(){
console.log("c")
}
a()
a.b()
a.c()
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Использую input и кнопку для получения данных из оногоJs имею такой вот код: