Установка значения по умолчанию для аргумента функции в actionscript 3

Вы можете попробовать следующее.

1) Сначала установите определение типа для jquery:

npm install @types/jquery

2) Затем в файле компонента импортируйте jquery, уведомите и используйте их.

import * as $ from 'jquery';
import 'bootstrap-notify';

$[`notify`](....);

3) наконец, вам также нужно добавить CSS-файл / ссылку, чтобы увидеть его фактический стиль.

demo https://stackblitz.com/edit/angular-custom-alert-message-hqrysq?file=app%2Fapp.component.ts

иногда выдает ошибку, но если вы добавите несколько пробелов в код и сохраните его, он будет вести себя правильно.

6
задан AlexH 12 December 2008 в 18:51
поделиться

3 ответа

Достаточно странно кажется, что Вы не можете сделать этого, по крайней мере я не мог заставить это работать, это не примет ссылок на статические функции как значение по умолчанию.

Лучшее, которое я мог сделать, было этим:

public function myFunction(functionArgument:Function = null):void {
    if (functionArgument != null) {
        functionArgument();
    } else {
        defaultFunction();
    }
}

Как заметка на полях я просто обнаружил, что на самом деле можно объявить функции как это:

public static const STATICFUNC:Function = function():void { trace("i'm static!") };

Но это, кажется, работает тот же путь объявлением их нормальный путь, таким образом, никакая удача там также.

8
ответ дан 10 December 2019 в 00:45
поделиться

Значения по умолчанию параметра должны быть константами времени компиляции, потому что компилятор должен вставить значение по умолчанию, когда код компилируется. Это означает статические функции, неважно, насколько предсказуемый они, не может использоваться в качестве значений по умолчанию параметра. Константы времени компиляции являются значениями, о которых знает компилятор путем осмотра кода, но не на самом деле выполнения его.

1
ответ дан 10 December 2019 в 00:45
поделиться

Я соглашаюсь с grapefrukt.

Но в случае, если Вы хотите создать новые объекты в каждом вызове, можно сделать это:

function myFunction(f:Function = null):void
{
    f = (f != null) ? f : function():void{ trace('new function'); }
}

или конечно:

function myFunction(f:Function = null):void
{
    f = (f != null) ? f : defaultFunction; 
}

function defaultFunction():void
{
   trace('default function invoked')
}
1
ответ дан 10 December 2019 в 00:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: