powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Не понятен пример кода из спецификации TypeScript
5 сообщений из 5, страница 1 из 1
Не понятен пример кода из спецификации TypeScript
    #39021114
Фотография anc32
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Читаю про объектные типы в спецификации на странцие 13, но не понятно из описания как устроен и ведёт себя следующий пример кода:
var f: { (): string; };
var sameType: () => string = f; // Ok
var nope: () => number = sameType; // Error: type mismatch

Объясните, пожалуйста, на пальцах.
...
Рейтинг: 0 / 0
Не понятен пример кода из спецификации TypeScript
    #39021117
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: javascript
1.
2.
3.
var f;
var sameType = f; // Ok
var nope = sameType;



http://www.typescriptlang.org/Playground
...
Рейтинг: 0 / 0
Не понятен пример кода из спецификации TypeScript
    #39021119
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сначала объявляется интерфейс функции, возвращающей строку.
потом объявляется переменная, имеющая тип функции, возвращающей строку, с присвоением оного интерфейса (успешно).
а потом объявляется переменная, имеющая тип функции, возвращающей число (не успешно - нарушение типов).
...
Рейтинг: 0 / 0
Не понятен пример кода из спецификации TypeScript
    #39021120
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кстати, этого примера на 13й странице спецификации нет.
...
Рейтинг: 0 / 0
Не понятен пример кода из спецификации TypeScript
    #39021122
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще, спецификация TS слишком избыточна, имхо. Очень высокий уровень абстракции. Например, такой код, естественный для других языков с аналогичным функционалом, работать не будет:

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
module Sayings {
    export module Greeter {
        export var greeting: string = Greeter2.greeting;
    }
    export module Greeter2 {
	export var greeting: string = '435';
    }
}


Потому что декларативное описание модулей в TS превращается в императивный код js:

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
var Sayings;
(function (Sayings) {
    var Greeter;
    (function (Greeter) {
        Greeter.greeting = Greeter2.greeting;
    })(Greeter = Sayings.Greeter || (Sayings.Greeter = {}));
    var Greeter2;
    (function (Greeter2) {
        Greeter2.greeting = '435';
    })(Greeter2 = Sayings.Greeter2 || (Sayings.Greeter2 = {}));
})(Sayings || (Sayings = {}));

На момент вызова Greeter2.greeting переменной Greeter2 еще не существует.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Не понятен пример кода из спецификации TypeScript
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]