forked from TypeScriptToLua/TypeScriptToLua.github.io
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
32 lines (32 loc) · 16 KB
/
index.html
File metadata and controls
32 lines (32 loc) · 16 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta name="generator" content="Docusaurus v2.0.0-alpha.70">
<link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="TypeScriptToLua Blog RSS Feed">
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="TypeScriptToLua Blog Atom Feed">
<link rel="search" type="application/opensearchdescription+xml" title="TypeScriptToLua" href="/opensearch.xml"><title data-react-helmet="true">TypeScriptToLua</title><meta data-react-helmet="true" property="og:title" content="TypeScriptToLua"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:docusaurus_tag" content="default"><link data-react-helmet="true" rel="shortcut icon" href="/images/favicon.ico"><link data-react-helmet="true" rel="preconnect" href="https://BH4D9OD16A-dsn.algolia.net" crossorigin="anonymous"><script data-react-helmet="true">document.addEventListener("DOMContentLoaded",(function(){var n=document.getElementById("base-url-issue-banner-container");if(n){var e=window.location.pathname,t="/"===e.substr(-1)?e:e+"/";n.innerHTML=t}}))</script><link rel="stylesheet" href="/styles.dd4f4be3.css">
<link rel="stylesheet" href="/main.69618293.css">
<link rel="stylesheet" href="/1df93b7f.e5936446.css">
<link rel="preload" href="/styles.9e960a30.js" as="script">
<link rel="preload" href="/runtime~main.a6dad94e.js" as="script">
<link rel="preload" href="/main.3eca3247.js" as="script">
<link rel="preload" href="/1.f61e14a0.js" as="script">
<link rel="preload" href="/3.25dbb900.js" as="script">
<link rel="preload" href="/1df93b7f.cb112d71.js" as="script">
</head>
<body>
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
<div class="baseUrlIssueBanner_1-cE" style="border:solid red thick;background-color:#ffe6b3;margin:20px;padding:20px;font-size:20px"><p style="font-weight:bold;font-size:30px">Your Docusaurus site did not load properly.</p><p>A very common reason is a wrong site <a href="https://v2.docusaurus.io/docs/docusaurus.config.js/#baseurl" style="font-weight:bold">baseUrl configuration</a>.</p><p>Current configured baseUrl = <span style="font-weight:bold;color:red">/</span> (default value)</p><p>We suggest trying baseUrl = <span style="font-weight:bold;color:green" id="base-url-issue-banner-container"></span> </p></div><nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_11B0">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></div><a class="navbar__brand" href="/"><img src="/images/logo.png" alt="TypeScriptToLua" class="themedImage_YANc themedImage--light_3CMI navbar__logo"><img src="/images/logo.png" alt="TypeScriptToLua" class="themedImage_YANc themedImage--dark_3ARp navbar__logo"><strong class="navbar__title">TypeScriptToLua</strong></a><a class="navbar__item navbar__link" href="/docs/getting-started">Docs</a><a class="navbar__item navbar__link" href="/play">Playground</a></div><div class="navbar__items navbar__items--right"><a href="https://discord.gg/BWAq58Y" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">Discord</a><a href="https://github.com/TypeScriptToLua/TypeScriptToLua" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">GitHub</a><div class="react-toggle react-toggle--disabled displayOnlyInLargeViewport_2N3Q"><div class="react-toggle-track"><div class="react-toggle-track-check"><span class="toggle_3NWk">🌜</span></div><div class="react-toggle-track-x"><span class="toggle_3NWk">🌞</span></div></div><div class="react-toggle-thumb"></div><input type="checkbox" disabled="" aria-label="Dark mode toggle" class="react-toggle-screenreader-only"></div><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><div class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></div></button></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div><div class="navbar-sidebar"><div class="navbar-sidebar__brand"><a class="navbar__brand" href="/"><img src="/images/logo.png" alt="TypeScriptToLua" class="themedImage_YANc themedImage--light_3CMI navbar__logo"><img src="/images/logo.png" alt="TypeScriptToLua" class="themedImage_YANc themedImage--dark_3ARp navbar__logo"><strong class="navbar__title">TypeScriptToLua</strong></a></div><div class="navbar-sidebar__items"><div class="menu"><ul class="menu__list"><li class="menu__list-item"><a class="menu__link" href="/docs/getting-started">Docs</a></li><li class="menu__list-item"><a class="menu__link" href="/play">Playground</a></li><li class="menu__list-item"><a href="https://discord.gg/BWAq58Y" target="_blank" rel="noopener noreferrer" class="menu__link">Discord</a></li><li class="menu__list-item"><a href="https://github.com/TypeScriptToLua/TypeScriptToLua" target="_blank" rel="noopener noreferrer" class="menu__link">GitHub</a></li></ul></div></div></div></nav><div class="main-wrapper"><header class="hero heroBanner_2Wl1 container"><h1 class="hero__title title_1uZi"><b>Type</b><wbr>Script<wbr>To<b>Lua</b></h1><p class="hero__subtitle">Write Lua with TypeScript</p><div class="quickNavButtons_3iB6"><a class="button button--outline button--primary button--lg quickNavButton_1-7M" href="/docs/getting-started">Get Started</a><a class="button button--outline button--success button--lg quickNavButton_1-7M" href="/play">Try Online</a></div></header><main><section class="padding-vert--md container"><div class="row"><div class="col col--6 example_1Bc9"><pre class="prism-code language-typescript codeBlock_222H"><button type="button" aria-label="Copy code to clipboard" class="copyButton_ujp3">Copy</button><a aria-label="Open code on playground" class="playgroundButton_3DKR" target="_blank" href="/play/#code/GYVwdgxgLglg9mABAgggIxgGxlAngYQEMBnKACigAsZiAuRANzhgBMAaRCEqAUwCd6AVTA4OUQnwDmPKAAU4dRADUe0OHwCUiAN4AoRAc4JSicDmKIAvImAwwLYeYCSYAEqEWMEMQoTpchQ4AVgAGEI0Abl19QwhjKEQeMB4AWxgeC2szKGIAOltMXj4ybKsAPk5uflyaAFFklNwSkSgNSOjDG3VEMjiwEyTU3GRgRIb04i09Ts7BxtyAayxMMnbOgF9o9aA">Playground</a><code class="codeBlockLines_3zpG" style="color:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token keyword" style="color:#00009f">function</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">onAbilityCast</span><span class="token punctuation" style="color:#393A34">(</span><span class="token parameter keyword" style="color:#00009f">this</span><span class="token parameter punctuation" style="color:#393A34">:</span><span class="token parameter"> </span><span class="token parameter keyword" style="color:#00009f">void</span><span class="token parameter punctuation" style="color:#393A34">,</span><span class="token parameter"> caster</span><span class="token parameter punctuation" style="color:#393A34">:</span><span class="token parameter"> Unit</span><span class="token parameter punctuation" style="color:#393A34">,</span><span class="token parameter"> targetPos</span><span class="token parameter punctuation" style="color:#393A34">:</span><span class="token parameter"> Vector</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token keyword" style="color:#00009f">const</span><span class="token plain"> units </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">findUnitsInRadius</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">targetPos</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">500</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block">
</span></div><div class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token keyword" style="color:#00009f">const</span><span class="token plain"> enemies </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> units</span><span class="token punctuation" style="color:#393A34">.</span><span class="token method function property-access" style="color:#d73a49">filter</span><span class="token punctuation" style="color:#393A34">(</span><span class="token parameter">unit</span><span class="token plain"> </span><span class="token arrow operator" style="color:#393A34">=></span><span class="token plain"> caster</span><span class="token punctuation" style="color:#393A34">.</span><span class="token method function property-access" style="color:#d73a49">isEnemy</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">unit</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block">
</span></div><div class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token keyword" style="color:#00009f">for</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">(</span><span class="token keyword" style="color:#00009f">const</span><span class="token plain"> enemy </span><span class="token keyword" style="color:#00009f">of</span><span class="token plain"> enemies</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain"> enemy</span><span class="token punctuation" style="color:#393A34">.</span><span class="token method function property-access" style="color:#d73a49">kill</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block">
</span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span></div></code></pre></div><div class="col col--6 example_1Bc9"><pre class="prism-code language-lua codeBlock_222H"><button type="button" aria-label="Copy code to clipboard" class="copyButton_ujp3">Copy</button><code class="codeBlockLines_3zpG" style="color:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token plain">function onAbilityCast(caster, targetPos)</span></div><div class="token-line" style="color:#393A34"><span class="token plain"> local units = findUnitsInRadius(targetPos, 500)</span></div><div class="token-line" style="color:#393A34"><span class="token plain"> local enemies = __TS__ArrayFilter(</span></div><div class="token-line" style="color:#393A34"><span class="token plain"> units,</span></div><div class="token-line" style="color:#393A34"><span class="token plain"> function(____, unit) return caster:isEnemy(unit) end</span></div><div class="token-line" style="color:#393A34"><span class="token plain"> )</span></div><div class="token-line" style="color:#393A34"><span class="token plain"> for ____, enemy in ipairs(enemies) do</span></div><div class="token-line" style="color:#393A34"><span class="token plain"> enemy:kill()</span></div><div class="token-line" style="color:#393A34"><span class="token plain"> end</span></div><div class="token-line" style="color:#393A34"><span class="token plain">end</span></div></code></pre></div></div></section><section class="padding-vert--lg container"><div class="row"><div class="col col--4"><h3>Extend existing APIs</h3><p>This project is useful in any environment where Lua code is accepted, with the powerful option of simply declaring any existing API using TypeScript declaration files.</p></div><div class="col col--4"><h3>Type Safety</h3><p>Static types can ease the mental burden of writing programs, by automatically tracking information the programmer would otherwise have to track mentally in some fashion. Types serve as documentation for yourself and other programmers and provide a ‘gradient’ that tells you what terms make sense to write.</p></div><div class="col col--4"><h3>IDE Support</h3><p>Types enable Lua developers to use highly-productive development tools and practices like static checking and code refactoring when developing Lua applications. TypeScript extensions are available for many text editors.</p></div></div></section></main></div><footer class="footer"><div class="container"><div class="row footer__links"><div class="col footer__col"><h4 class="footer__title">Docs</h4><ul class="footer__items"><li class="footer__item"><a class="footer__link-item" href="/docs/getting-started">Getting Started</a></li><li class="footer__item"><a class="footer__link-item" href="/docs/configuration">Configuration</a></li><li class="footer__item"><a class="footer__link-item" href="/docs/advanced/writing-declarations">Advanced</a></li></ul></div><div class="col footer__col"><h4 class="footer__title">Community</h4><ul class="footer__items"><li class="footer__item"><a href="https://discord.gg/BWAq58Y" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord</a></li></ul></div><div class="col footer__col"><h4 class="footer__title">More</h4><ul class="footer__items"><li class="footer__item"><a href="https://github.com/TypeScriptToLua" target="_blank" rel="noopener noreferrer" class="footer__link-item">Github</a></li><li class="footer__item"><a class="footer__link-item" href="/play">Playground</a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><a href="https://github.com/TypescriptToLua" target="_blank" rel="noopener noreferrer" class="footerLogoLink_31Aa"><img class="footer__logo" alt="TypescriptToLua Logo" src="/images/logo.png"></a></div><div class="footer__copyright">Copyright © 2021 TypescriptToLua Contributors</div></div></div></footer></div>
<script src="/styles.9e960a30.js"></script>
<script src="/runtime~main.a6dad94e.js"></script>
<script src="/main.3eca3247.js"></script>
<script src="/1.f61e14a0.js"></script>
<script src="/3.25dbb900.js"></script>
<script src="/1df93b7f.cb112d71.js"></script>
</body>
</html>