Машинопись: Почему это не ошибка типа?

голоса
6

Я пытаюсь понять степень логического вывода типа при работе в машинописи. В следующем примере кода, почему fooреализация «s в baz.esplodeсиле? Я понимаю, что пустой метод соответствует void.

interface bar {
    horace: number;
}

interface baz {
    esplode: (string, number) => bool;
}

interface bazzer extends bar, baz { }

var foo: bazzer = {
    horace: 12,
    esplode: function () { }
}

var x = foo.esplode('crackers', 2);

Благодаря!

Задан 02/10/2012 в 09:41
источник пользователем
На других языках...                            


1 ответов

голоса
11

спасибо взглянуть!

Это на самом деле ошибка. Когда функция контекстуально набран, мы должны относиться к нему, как будто существует обратный тип аннотации, который представляет предполагаемый тип возврата (в соответствии с разделом 4.9 языка спецификации), так что вы правы в том, что там должна быть ошибка.

У меня уже есть исправление для этого, но вы можете сообщить об ошибке на сайте CodePlex поэтому наша команда может отслеживать его? Я могу нажать на исправление нашего развития отрасли во второй половине дня.

Еще раз спасибо!

Ответил 02/10/2012 в 18:26
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more