В коде я часто использую функцию как объект, то есть:
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()
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости