Question: everyone! I'm trying to define my component types using TypeScript and I want to make it so that I can pass either an array of objects or the callback function containing the previous state. This is my code:

```
type ChipsContextData = {
    chips: Array<ChipsData>,
    setChips: (newChips: Array<ChipsData>) => void | ((setCallback: (previousState: ChipsData[]) => ChipsData[]) => void); 
    counters: Array<number>;
    setCounters: (newCounters: Array<number>) => void; 
}

```

But TypeScript won't let me use the second part of the union. What can I do?

Answer: 
You got to the root of the issue. M1 Macs use an ARM64-based architecture as opposed to x64. The [website for blat](https://anaconda.org/bioconda/blat) does not list ARM compatibility, and, addressing the M1 specifically, a quick examination of the last update to the [files](https://anaconda.org/bioconda/blat/files) shows that they predate the launch of the Apple Silicon Macs, just like [the website you got the command from](https://shanguangyu.com/articles/install-blat-on-mac-with-one-liner-command/). Anaconda itself added support for ARM64 [only recently](https://www.anaconda.com/blog/new-release-anaconda-distribution-now-supporting-m1). x64 translation does exist for macOS apps, but I don't think I've heard of one for blat.
***From post update***

This seems to be a common issue for Python users on new M1 macs. Many python packages are not made for ARM chips

This is solved by downloading `homebrew` and `miniforge` and using this code:

```
CONDA_SUBDIR=osx-64 conda create -n [environment]   # create a new environment
conda activate [environment]
conda env config vars set CONDA_SUBDIR=osx-64  # subsequent commands use intel packages

```

<https://naolin.medium.com/conda-on-m1-mac-with-miniforge-bbc4e3924f2b>
<https://towardsdatascience.com/using-conda-on-an-m1-mac-b2df5608a141>
<https://github.com/Haydnspass/miniforge#rosetta-on-mac-with-apple-silicon-hardware>