Uncalled Function Checks
Nova na versão 3.7, é uma verificação dentro de blocos 'if'
para quando você acidentalmente usa uma função ao invés do valor
de retorno da função.
Isto só é aplicado quando a função é conhecida para existir
fazendo com que o bloco 'if' sempre seja verdadeiro.
Aqui está um exemplo de uma 'interface' onde existem
'callbacks' opcionais e não-opcionais.
// Por 'pluginShouldLoad' poder não existir, então
é uma verificação legítima.
interface PluginSettings {
pluginShouldLoad?: () => void;
pluginIsActivated: () => void;
}
declare const plugin: PluginSettings;
// 'pluginIsActivated' sempre deve existir, mas o TypeScript
ainda permite a verificação, porque o método é chamado
dentro do bloco 'if'.
if (plugin.pluginShouldLoad) {
// Faça alguma coisa quando 'pluginShouldLoad' existir.
}
// Na versão 3.6 e anteriores, isto não era um erro.
if (plugin.pluginIsActivated) {
// Quer fazer alguma coisa quando o plugin está ativado,
// mas ao invés de chamar o método, nós usamos isso como uma
// propriedade.
}
if (plugin.pluginIsActivated) {
plugin.pluginIsActivated();
}