2010-12-04 3 views
2

Я пишу код, который вызывает внешнюю библиотеку JavaScript Foo, но только если Foo определен. Эквивалентный код JavaScript должен выглядеть примерно так:Script #: Определить, является ли импортированный тип нулевым

if (typeof(Foo) != "undefined") { 
    Foo.bar(); 
} 

Я попробовал следующее в Script #:

  • если (Script.IsNullOrDefined (Foo)!): Мой проект требует aacorlib и не может использовать sscorlib, где определен IsNullOrDefined.
  • if (typeof (Foo) .ToString()! = "Undefined"): Результаты в Foo.toString()! == 'undefined', которые не будут выполнены, потому что Foo не определено.
  • if ((string) Тип.InvokeMethod (null, "typeof", "Foo")! = "Undefined"): Ошибка компиляции "Имя глобального метода должно быть допустимым идентификатором", ссылаясь на " тип".
  • if (Type.IsClass (typeof (Foo))): Ошибка при запуске с ошибкой «Foo undefined».
  • if (typeof (Foo)! = Null): Испускает "if (Foo! = Null)", который выдает ошибку "Foo undefined".

Каким должен выглядеть код сценария #, чтобы сгенерировать этот код JavaScript?

ответ

1
Script.Literal("if (typeof(Foo) != \"undefined\") { Foo.bar(); }"); 
Смежные вопросы