Лучший способ получить правильный оператор импорта для фактического значения из ThirdPartySDK
- это рефакторинг скрипта в модуль, который экспортирует это значение. Следующий фрагмент позволяет использовать оператор импорта, как показано:
export const ThirdPartySDK = {
foo() { console.log('Doing foo'); }
};
Для больших библиотек рефакторинг не всегда так прост, поэтому я вижу 2 подхода, которые не требуют слишком много рефакторинга:
1. Экспортируйте переменную ThirdPartySDK
Вы можете просто сделать модуль из файла IIFE, экспортировав текущую переменную IThirdPartySDK
(возвращаемую IIFE), а затем импортировать ее, как показано: [ 1120]
export const ThirdPartySDK = (function() {
var _export = {};
// Add some methods to export
return _export;
})();
Обратите внимание, что если вы хотите получить некоторую полезную информацию о форме ThirdPartySDK
, вам нужно будет добавить аннотацию типа в объявление const
, и если SomeType
(см. Ниже) делает еще не существует, вам придется написать это самостоятельно:
export const ThirdPartySDK: SomeType = (function() {
// ...
В этот момент Typescript начнет жаловаться на то, что выражение IIFE не может быть присвоено SomeType; быстрое «решение», чтобы сказать машинописи, что она притворяется, выражение оценивается как значение типа SomeType
с использованием ключевого слова as
:
export const ThirdPartySDK: SomeType = (function() {
// ...
})() as SomeType;
2. Сохраните тег и объявите переменную
Другой вариант - сохранить тег script, ничего не импортировать, а объявить переменную и ее ожидаемую наберите машинопись:
(но и в этом случае вам может потребоваться предоставить определения типа самостоятельно)
interface SomeType {
// SDK type shape goes here...
}
declare const ThirdPartySDK: SomeType;
UPDATE users SET `authorised` = IF (`authorised`, 0, 1)
UPDATE `users` SET `authorised` = NOT `authorised` WHERE id = 2
Этот запрос также работает для отмены поля, и он более встроен в логический синтаксис.
Существует несколько способов сделать это, вот простой:
UPDATE users SET authorised = ABS(authorised - 1) WHERE id = 2;
Также возможно использовать XOR, если ваше «логическое» поле реализовано как TINYINT:
UPDATE users SET authorised = authorised XOR 1 WHERE id = 2;
Это установит для «authorized» значение 0, если в данный момент 1, и 1, если в данный момент 0. Это также обнулит все ненулевые значения, так что это идеальное решение, если вы (как и я) используете несколько положительных значений для отражения различных уровней «вкл», но всегда должны возвращаться к 0, когда «выключено».