вы можете использовать метод shape.addpicture
activesheet.Shapes.AddPicture Filename:="C:\test\desert.jpg", linktofile:=msoFalse, _
savewithdocument:=msoCTrue, Left:=0, Top:=0, Width:=100, Height:=100
Всякий раз, когда вы используете import
, он всегда будет преобразовываться в модуль. Однако вы можете использовать namespaces
вместе с "module": "system"
, после чего его можно будет выводить в один файл (или несколько файлов).
Итак, для очень простого проекта у вас будет следующее:
{
"compilerOptions": {
"target": "es2016",
"module": "system",
"outFile": "./lib.js"
},
"include": [
"./**/*.ts"
]
}
Затем вы создадите файлы, которые будут выглядеть следующим образом:
[ 1141] index.tsnamespace MyNamespace {
// This is a private method that cannot be accessed in other files
// the reason for that is because it isn't exported.
function y() {
alert("test");
}
x(y)
}
namespace MyNamespace {
// This method can be referenced in other files because it is exported.
export function x(callback: () => void): void {
callback();
}
}
var MyNamespace;
(function(MyNamespace) {
function x(callback) {
callback();
}
MyNamespace.x = x;
})(MyNamespace || (MyNamespace = {}));
var MyNamespace;
(function(MyNamespace) {
function y() {
alert("test");
}
MyNamespace.x(y);
})(MyNamespace || (MyNamespace = {}));
Затем вы можете использовать эти методы / функции вне пространства имен, просто вызывая их через пространство имен:
MyNamespace.y()
MyNamespace.x(MyNamespace.y)
// etc.
Для использования import
В рамках вашего проекта вам потребуется сторонняя библиотека requirejs . Это позволит вам использовать модули в браузере.
Итак, чтобы сделать это, нам сначала нужно иметь соответствующий конфигурационный файл, который выглядит примерно так, как показано выше, с единственным отличием - "module": "amd"
.
{
"compilerOptions": {
"target": "es2016",
"module": "amd",
"outFile": "./lib.js"
},
"include": [
"./**/*.ts"
]
}
Далее нам нужно создать правильный основной файл машинописи:
requirejs(['functions'], function (util: any) {
function y() {
alert("test");
}
util.x(y)
})
Поскольку используется третий партийная библиотека, она инициализируется по-разному (используя requirejs()
). Это говорит requirejs, что это точка входа в приложение, поэтому это необходимо только один раз.
export function x(callback: () => void): void {
callback();
}
define("functions", ["require", "exports"], function (require, exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
function x(callback) {
callback();
}
exports.x = x;
});
requirejs(['functions'], function (util) {
function y() {
alert("test");
}
util.x(y);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.js"></script>
If ваш скрипт находится во внешнем файле, вы можете использовать data-main
в теге скрипта, requirejs автоматически загрузит файл.
<script data-main="./lib" src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.js"></script>
Эта функция все еще экспериментальная и поддерживается не во всех браузерах . Все, что вам нужно сделать, это использовать атрибут type="module"
в вашем теге скрипта:
<script type="module" src="./path/to/main.js"></script>
Примечание: здесь мы используем оба разных target
и module
, а также outDir
.
Примечание: es2016
не является допустимым типом модуля.
{
"compilerOptions": {
"target": "es2016",
"module": "es2015",
"outDir": "./lib"
},
"include": [
"./**/*.ts"
]
}
Примечание: import
использует расширение .js
, иначе браузер не сможет загрузить его, если у вас нет правил перезаписи.
import { x } from './functions.js'
function y() {
alert("test");
}
x(y)
export function x(callback: () => void): void {
callback();
}
Это выдаст почти то же самое, что и файлы ts (Stackoverflow не поддерживает внешние файлы js, если они не размещены где-то, поэтому здесь нет фрагмента): [ 1165]
// index.js
import { x } from './functions.js';
function y() {
alert("test");
}
x(y);
// functions.js
export function x(callback) {
callback();
}